#===istalismanplugin===
# -*- coding: utf-8 -*-

# $Revision: 62 $
# $Author: rchiganov@gmail.com $
# $Date: 2013-12-22 16:33:53 +0000 (Sun, 22 Dec 2013) $

#---------------------------------------------------------------------------------------------------

# Плагин joke создан для веселья =) Бот отвечает на локаторы (либо слово либо
# смайл находящийся в любом месте сообщения какой дибо фразой =)

#---------------------------------------------------------------------------------------------------

def handler_joke(raw, type, source, parameters):
	if get_bot_nick(source[1]) != source[2]:
		botnick = get_bot_nick(source[1])
	else:
		return

	DBPATH='dynamic/' + source[1] + '/jokes.txt'

	if check_file(source[1],'jokes.txt'):
		jokedb = eval(read_file(DBPATH))

	try:
		if jokedb[u'key_nax']==10:
			va = [1,2,3,4,5,6,7,8,9,10]
		if jokedb[u'key_nax']==6:
			va = [1,2,3,4,5,6]
		if jokedb[u'key_nax']==3:
			va = [1,2,3]
		if jokedb[u'key_nax']==1:
			va = [1,1,1]

		naxx = random.choice(va)
		if naxx == 1:

			if jokedb[u'key_:-D']==u'yes':
				if parameters.count(':-D')>0:
					replies = [u'Ыыыы', u'Хахахха', u'А чо тут смешного?', u'Я тоже хочу посмеяться!', u'Не очень уж и смешно *DONT_KNOW*!', u'Очень смешно!', u'Кто-то из нас дурносмех :-P']
					rep = random.choice(replies)
					time.sleep(3)
					reply(type, source, rep)

			if jokedb[u'key_:-)']==u'yes':
				if (parameters.count(':-)')>0) | (parameters.count(':)')>0):
					replies = [u'А че такой улыбчивый?', u'Эххх... Улыбчивый ты человек!', u'Ух как по зубам бы дала!', u'КрасавчиГ', u':-)', u':-P', u'Улыбка до ушей)))']
					rep = random.choice(replies)
					time.sleep(3)
					reply(type, source, rep)

			if jokedb[u'key_bye']==u'yes':
				if (parameters.count('*BYE*')>0) | (parameters.count('*bye*')>0 ):
					replies = [u'Стоять!!!! А мне где досвидание?!!!', u'Иди грей постельку счас подойду :-[', u'И тебе досвидания', u'*BYE* возвращайся побыстрей!', u':-* Покедки', u'Подожди минут пять.., я накрашусь и с тобой ;)', u'А может все же останешься?! :-[ ', u'"Оставайся мальчик с нами, будешь нашим королем..." [:-} ']
					rep = random.choice(replies)
					time.sleep(3)
					reply(type, source, rep)

			if jokedb[u'key_kiss']==u'yes':
				if (parameters.count(':-*')>0):
					replies = [u'Целуй другого *GIRL MAD*', u'Фееее... Не целуй больше, это не гигиенично :-!', u'*Kiss my ass*', u'"И целуй меня везде, 18 мне уже..."[:-}', u'Фека... слава богу ты не уточняешь куда ее целуешь ))))', u'Хоть бы раз меня поцеловали :-[ ', u'Хватит лобзаца!!!']
					rep = random.choice(replies)
					time.sleep(3)
					reply(type, source, rep)

			if jokedb[u'key_bot']==u'yes':
				if (parameters.count(u'\u0431\u043e\u0442')>0 ) | (parameters.count(u'бот')>0) | (parameters.count(u'Бот')>0):
					replies = [u'Ух ты... А где бот?!', u'Чет я сомневаюсь, что ты не бот!', u'Еще скажи что ты впервые видишь живого бота', u'"Ну и пусть я бот, зато не глупей тебя!', u'Да что вы заладили бот, бот... Других слов нету ?!', u'*CRAZY* Если я бот, то ты ихтиозавыр', u'Зашибись... ты сама проницательность *ROFL*']
					rep = random.choice(replies)
					time.sleep(3)
					reply(type, source, rep)

			if jokedb[u'key_vika']==u'yes':
				if (parameters.count(u'Vika')>0) | (parameters.count(u'\u0412\u0438\u043a\u0430')>0) | (parameters.count('[VikA]')>0) | (parameters.count('\u0432\u0438\u043a\u0430')>0) | (parameters.count('вика')>0 )| (parameters.count('Вика')>0) :
					replies = [u'Я вас вЫнимательно слушаю!', u'Марьяна без баяна... кто меня звал?!', u'Почему я должна на вас, как милиционер, лаять? У меня еще хвост не вырос!!!', u'"То ли жизнь прекрасна, то ли я мазохистка. Ну теперь по делу, что случилось?', u'Женщины — цветы жизни. Их либо в воду, либо в землю.\n Чем могу помочь?', u'Вот жизнь пошла!!! А, вот - ещё пошлее.\n Кому я там понадобилась?', u'Ну и что опять Вика натворила?']
					rep = random.choice(replies)
					time.sleep(3)
					reply(type, source, rep)

			if jokedb[u'key_hi']==u'yes':
				if (parameters.count('*HI*')>0):
					replies = [u'Интересно, откуда у тебя ручки растут *JOKINGLY*', u' ', u':-D Ну и зачем же так махать?!', u'Приветик!', u'Заходи, ложись... Здравствуйте! :-D', u'Приветульки :-*!', u'Приветище!', u'И тебе руки в сторону *HI*']
					rep = random.choice(replies)
					time.sleep(3)
					reply(type, source, rep)

			if jokedb[u'key_:-P']==u'yes':
				if (parameters.count(':-P')>0) | (parameters.count(':P')>0):
					replies = [u'Ой какой миленький язычок Щас как отрежу !!! :-D', u'А че эт у тебя язык зелёный?', u':-P']
					rep = random.choice(replies)
					time.sleep(3)
					reply(type, source, rep)

			if jokedb[u'key_@}->--']==u'yes':
				if ((parameters.count('@}->--')>0) | (parameters.count('@}>--')>0) | (parameters.count('@};--')>0)) & (type == 'public'):					
					raw = string.split(parameters, ' ', 1)
					if raw[0].count(':'):
						raw2 = string.split(parameters, ':', 1)
					else:
						if raw[0].count(','):
							raw2 = string.split(parameters, ',', 1)
						else:
							raw2 = ['0', '0']
				nicks = GROUPCHATS[source[1]].keys()
				if (parameters.count('@}->--') == 1) | (parameters.count('@}>--') == 1) | (parameters.count('@};--') == 1):
					if (raw2[0] in nicks):
						rep = u'/me отобрала растение у '+raw2[0]+u', тебе еще подорють :-)'
					else:
						rep = u'/me забрала растение у '+source[2]+u', теперь они мои :-)'
				if (parameters.count('@}->--') > 1) | (parameters.count('@}>--') > 1) | (parameters.count('@};--') > 1):
					if (raw2[0] in nicks):
						rep = raw2[0]+u': Ну и зачем тебе клумба из гербария? :-D'
					else:
						rep = source[2]+u': Че эт за клумба? :-D'
				msg(source[1], rep)
	except:
		return

#---------------------------------------------------------------------------------------------------

def handler_joke_set(type, source, parameters):
	DBPATH='dynamic/'+source[1]+'/jokes.txt'

	if check_file(source[1],'jokes.txt'):
		jokedb = eval(read_file(DBPATH))

	parameters=parameters.strip()
	rawgreet = string.split(parameters, ' ', 1)

	if not len(rawgreet)==2:
		if rawgreet[0] != u'info':
			reply(type, source, u'что это было?')
			return

	if len(rawgreet)==2:
		status_joke=rawgreet[1]

	type_joke=rawgreet[0]

	if type_joke == u'info':
		res  = u'Joke - плагин "шутка" v0.9\nСтатус модулей:\n'
		lkeys = jokedb.keys()
		if u'key_:-D' in lkeys:
			res += u'1. Реакция на :-D (laugh) - ' + jokedb[u'key_:-D'] + '\n'
		if u'key_:-)' in lkeys:
			res += u'2. Реакция на :-) (smile) - ' + jokedb[u'key_:-)'] + '\n'
		if u'key_:-P' in lkeys:
			res += u'3. Реакция на :-P (tongue) - ' + jokedb[u'key_:-P'] + '\n'
		if u'key_@}->--' in lkeys:
			res += u'4. Реакция на @}->-- (flower) - ' + jokedb[u'key_@}->--'] + '\n'
		if u'key_bye' in lkeys:
			res += u'5. Реакция на *bye* (bye) - ' + jokedb[u'key_bye'] + '\n'
		if u'key_kiss' in lkeys:
			res += u'6. Реакция на :-* (kiss) - ' + jokedb[u'key_kiss'] + '\n'
		if u'key_hi' in lkeys:
			res += u'7. Реакция на *HI* (hi) - ' + jokedb[u'key_hi'] + '\n'
		reply(type, source, res)

	if type_joke == 'hi':
		if status_joke=='yes':
			jokedb[u'key_hi']=u'yes'
			reply(type, source, 'Шутка со смайлом *HI* - включена!')
		else:
			jokedb[u'key_hi']=u'no'
			reply(type, source, 'Шутка со смайлом *HI* - выключена!')

	if type_joke=='bot':
		if status_joke=='yes':
			jokedb[u'key_bot']=u'yes'
			reply(type, source, 'Шутка со словом бот - включена!')
		else:
			jokedb[u'key_bot']=u'no'
			reply(type, source, 'Шутка со словом бот - выключена!')

	if type_joke=='vika':
		if status_joke=='yes':
			jokedb[u'key_vika']=u'yes'
			reply(type, source, 'Шутка со словом Вика - включена!')
		else:
			jokedb[u'key_vika']=u'no'
			reply(type, source, 'Шутка со словом Вика - выключена!')
			
	if type_joke=='laugh':
		if status_joke=='yes':
			jokedb[u'key_:-D']=u'yes'
			reply(type, source, 'Шутка со смайлом :-D - включена!')
		else:
			jokedb[u'key_:-D']=u'no'
			reply(type, source, 'Шутка со смайлом :-D - выключена!')

	if type_joke=='smile':
		if status_joke=='yes':
			jokedb[u'key_:-)']=u'yes'
			reply(type, source, 'Шутка со смайлом :-) - включена!')
		else:
			jokedb[u'key_:-)']=u'no'
			reply(type, source, 'Шутка со смайлом :-) - выключена!')

	if type_joke=='tongue':
		if status_joke=='yes':
			jokedb[u'key_:-P']=u'yes'
			reply(type, source, 'Шутка со смайлом :-P - включена!')
		else:
			jokedb[u'key_:-P']=u'no'
			reply(type, source, 'Шутка со смайлом :-P - выключена!')

	if type_joke=='bye':
		if status_joke=='yes':
			jokedb[u'key_bye']=u'yes'
			reply(type, source, 'Шутка со смайлом *BYE* - включена!')
		else:
			jokedb[u'key_bye']=u'no'
			reply(type, source, 'Шутка со смайлом *BYE* - выключена!')                                                                                       

	if type_joke=='kiss':
		if status_joke=='yes':
			jokedb[u'key_kiss']=u'yes'
			reply(type, source, 'Шутка со смайлом :-* - включена!')
		else:
			jokedb[u'key_kiss']=u'no'
			reply(type, source, 'Шутка со смайлом :-* - выключена!')

	if type_joke=='flower':
		if status_joke=='yes':
			jokedb[u'key_@}->--']=u'yes'
			reply(type, source, 'Шутка со смайлом @}->-- - включена!')
		else:
			jokedb[u'key_@}->--']=u'no'
			reply(type, source, 'Шутка со смайлом @}->-- - выключена!')

	if type_joke=='all':
		if status_joke=='yes':
			jokedb[u'key_@}->--']=u'yes'
			jokedb[u'key_:-D']=u'yes'
			jokedb[u'key_:-)']=u'yes'
			jokedb[u'key_:-P']=u'yes'
			jokedb[u'key_bye']=u'yes'
			jokedb[u'key_kiss']=u'yes'
			jokedb[u'key_hi']=u'yes'
			jokedb[u'key_nax']= 6
			reply(type, source, 'Реакция на все смайлы включена!\nВероятность срабатывания - 50% (выставлено по умолчанию)')
		else:
			jokedb[u'key_@}->--']=u'no'
			jokedb[u'key_:-D']=u'no'
			jokedb[u'key_:-)']=u'no'
			jokedb[u'key_:-P']=u'no'
			jokedb[u'key_bye']=u'no'
			jokedb[u'key_kiss']=u'no'
			jokedb[u'key_hi']=u'no'
			reply(type, source, '\n Реакция на все смайлы выключена!')

	if type_joke=='%':

		if not status_joke=='0' and not status_joke=='25' and not status_joke=='50' and not status_joke=='75' and not status_joke=='100':
			reply(type, source, '\n Ошибка!!!\n Значение должно быть <0,25,50,75,100>\n Где 0% - Реакция отключена, а 100% - На каждый смаил из списка')
			return

		if status_joke=='0':
			jokedb[u'key_nax']= 0
			jokedb[u'key_@}->--']=u'no'
			jokedb[u'key_:-D']=u'no'
			jokedb[u'key_:-)']=u'no'
			jokedb[u'key_:-P']=u'no'
			jokedb[u'key_bye']=u'no'
			jokedb[u'key_kiss']=u'no'
			jokedb[u'key_hi']=u'no'
			jokedb[u'key_bot']=u'no'
			jokedb[u'key_vika']=u'no'
			reply(type, source, 'Реакция на все смайлы отключена, вероятность ответа - 0%')

		if status_joke=='25':
			jokedb[u'key_nax']= 10
			reply(type, source, 'Я буду реагировать на смайлы с вероятностью 25% *YES*')

		if status_joke=='50':
			jokedb[u'key_nax']= 6
			reply(type, source, 'Я буду реагировать на смайлы с вероятностью 50% *YES*')

		if status_joke=='75':
			jokedb[u'key_nax']= 3
			reply(type, source, 'Я буду реагировать на смайлы с вероятностью 75% *YES*')

		if status_joke=='100':
			jokedb[u'key_nax']= 1
			reply(type, source, 'Я буду реагировать на смайлы с вероятностью 100% *YES*')

	write_file(DBPATH, str(jokedb))

#---------------------------------------------------------------------------------------------------

register_command_handler(handler_joke_set, 'приколы', [ 'мук', 'все' ], 20, """Включение/выключение приколов бота которые срабатывают на смайл.
Параметры:
- laugh  -> :-D
- smile  -> :-)
- tongue -> :-P
- flower -> @}->--
- kiss   -> :-*
- bye    -> *BYE*
- hi     -> *HI*
- all    -> устанавливаем значение для всех вышеперечисленных приколов
- info   -> выводит текущее значение параметров
- %      -> процент вероятности реагирования: 0,25,50,75,100""", 'приколы <прикол> <yes/no>', [ 'приколы smile yes', 'приколы laugh no', 'приколы % 75' ])
register_message_handler(handler_joke)

#---------------------------------------------------------------------------------------------------